#ifndef FIELD_HPP
#define	FIELD_HPP

#include <iostream>
#include <vector>
#include <set>
#include <stdlib.h>
#include <string.h>

#include <log4cpp/Category.hh>
#include <log4cpp/FileAppender.hh>
#include <log4cpp/PatternLayout.hh>

#include "sudoku.hpp"
#include "random.hpp"

class Field;
class Sudoku;

/* --------------------------------------------------------------- */
class Field {
	public:
		std::set<Field*> neigs;
		Field(int r, int c, Sudoku * sudoku);
		bool setValue(int v);
		bool checkValue(int v);
		int getValue();
		int getColumn();
		int getRow();
		void showNeigh();
		void createNeigSet();
		void removeValueFromSet(int v);
		void addValueToSet(int v);
		//std::set<int> values;
		void printValues();	
		int getNoOfValues();
		//Field * getNextField();	
	private:
		int row;
		int column;
		int valuest[10];
		int noOfValues;
		
		std::vector<Field*> neigsv; 	//to delete
		Sudoku * sudoku;
		int value;
};
/* --------------------------------------------------------------- */
#endif
